Conventional wireless communications systems typically include one or more transmitters that operate in conjunction with one or more receivers. In general, transmitters process information bits with an error detection code, such as a cyclic-redundancy check (CRC) code, that appends a small number of bits to the information bits to the information packet. The information packet is then processed with an error correcting code, such as a turbo code or low density parity check code (LDPC), to form a coded packet. The transmitter then modulates, or maps, these coded bits onto a stream of symbols, such as Quadrature Amplitude Modulation. The symbol stream forms a complex baseband signal that is then up-converted to an RF frequency and transmitted over a channel.
The receiver obtains a signal and performs the inverse process of down-converting, demodulating, and decoding. Since the wireless channel may distort and attenuate the transmitted signal, there is some probability that the decoded bits are incorrect and, using the CRC, a receiver can determine with high probability whether the information bits are correct. The process that sends information bits between the transmitter and receiver is widely known as the physical layer and includes all of the RF, modulation and/or demodulation, and error-correcting and/or detection coding.
The process by which transmitters and receivers communicate a status of a data transfer is widely known as the data link layer. In conventional wireless systems, a receiver sends an acknowledgment (ACK) message to a transmitter using the reverse link physical layer if the received information bits are correct. If, however, the message was not received correctly, the receiver sends a (NACK) message to the transmitter. In conventional data communication systems, the transmitter receiving a NACK message would initiate an automatic repeat request (ARQ), and the transmitter would attempt to resend the message.
As the quality of wireless channel varies widely, “non-rateless” systems must generally be designed for a specific range of operating conditions, and as such, a fair amount of design margin is needed to ensure reliability. Therefore, when the channel quality is good, the transmitted data rate is often far lower than the channel could support, and when the channel quality is bad, the message does not get through to the receiver, so the transmitted power is wasted.
The goal of rateless coding is to design a scheme that, by virtue of its protocol, modulation and coding scheme, may be implemented by a wireless communications system to automatically adapt to the changing channel conditions, thus ensuring a high data rate when channel conditions are good and a low data rate when channel conditions are poor. In either case, a wireless system using rateless coding wastes little or no transmitted power. The benefit of such a rateless coding is that no margin needs to be designed into the system, and as such, the system can operate opportunistically and achieve a rate commensurate with the instantaneous channel conditions.